package la.iok.hzsvn.lewin.movie.shopmovie.model;

import java.util.Date;
import java.util.Objects;

public class CarpoolListParam {
    /**
     * 拼车店铺
     */
    private Long orgUnitId;
    /**
     * 店铺剧本id
     */
    private Long shopMovieId;
    /**
     * 状态。1：拼车中；2：游戏中；3：已结束。
     * 拼车中的状态，可以扫描拼车二维码加入拼车；
     * 游戏中表示当前已经发车，玩家正在进行游戏，此时不能加入拼车；
     * 已结束表示游戏结束
     */
    private Integer status;
    /**
     * 玩家的账号id,过滤指定玩家游玩的拼车
     */
    private Long playerUserId;

    /**
     * 主持人的用户id,过滤指定主持人发车的记录
     */
    private Long dmUserId;
    /**
     * 客服的用户id,过滤指定客服有归属于他的玩家的拼车记录
     */
    private Long csUserId;

    /**
     * 过滤的开始时间
     */
    private Date start;
    /**
     * 过滤的结束时间
     */
    private Date end;

    public Long getOrgUnitId() {
        return orgUnitId;
    }

    public void setOrgUnitId(Long orgUnitId) {
        this.orgUnitId = orgUnitId;
    }

    public Long getShopMovieId() {
        return shopMovieId;
    }

    public void setShopMovieId(Long shopMovieId) {
        this.shopMovieId = shopMovieId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getPlayerUserId() {
        return playerUserId;
    }

    public void setPlayerUserId(Long playerUserId) {
        this.playerUserId = playerUserId;
    }

    public Long getDmUserId() {
        return dmUserId;
    }

    public void setDmUserId(Long dmUserId) {
        this.dmUserId = dmUserId;
    }

    public Long getCsUserId() {
        return csUserId;
    }

    public void setCsUserId(Long csUserId) {
        this.csUserId = csUserId;
    }

    public Date getStart() {
        return start;
    }

    public void setStart(Date start) {
        this.start = start;
    }

    public Date getEnd() {
        return end;
    }

    public void setEnd(Date end) {
        this.end = end;
    }

    public void clear(){
        setDmUserId(null);
        setStart(null);
        setEnd(null);
        setPlayerUserId(null);
        setCsUserId(null);
        setOrgUnitId(null);
        setShopMovieId(null);
        setStatus(null);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof CarpoolListParam)) return false;
        CarpoolListParam listParam = (CarpoolListParam) o;
        return Objects.equals(orgUnitId, listParam.orgUnitId) && Objects.equals(shopMovieId, listParam.shopMovieId) && Objects.equals(status, listParam.status) && Objects.equals(playerUserId, listParam.playerUserId) && Objects.equals(dmUserId, listParam.dmUserId) && Objects.equals(csUserId, listParam.csUserId) && Objects.equals(start, listParam.start) && Objects.equals(end, listParam.end);
    }

    @Override
    public int hashCode() {
        return Objects.hash(orgUnitId, shopMovieId, status, playerUserId, dmUserId, csUserId, start, end);
    }

    @Override
    public String toString() {
        return "CarpoolListParam{" +
                "orgUnitId=" + orgUnitId +
                ", shopMovieId=" + shopMovieId +
                ", status=" + status +
                ", playerUserId=" + playerUserId +
                ", dmUserId=" + dmUserId +
                ", csUserId=" + csUserId +
                ", start=" + start +
                ", end=" + end +
                '}';
    }
}
